home *** CD-ROM | disk | FTP | other *** search
- Date: 20-Jul-87 21:51 EDT
- From: Chuck Forsberg [70007,2304]
- Subj: ZMODEM BUG
-
- A bug has been discovered in the ZMODEM protocol description and
- in the "rzfile" routine in rz.c. This affects Omen software previous
- to 7-20-87 and probabaly other ZMODEM programs as well.
-
- When the reciever detects a CRC error near the end of a file, it
- sends a ZRPOS frame to the sender. If, in the meantime, the
- sender has sent a ZEOF frame, the receiver will reject the ZEOF because
- it has an incorrect offset, and two ZRPOS frames will have been
- sent for one error. This may trigger a race condition that aborts
- the transfer.
-
- Repeat by: Send some files from a 386 PC-AT at 19200 bps to an AT or
- CLONE with reception to an extended memory ramdisk. The firmware
- supporting the extended memory ramdisk causes lost interrupts at
- 19200 bps, so an error is induced each time the receiver writes to
- disk while data is streaming in. Under these conditions, most frames
- must be retransmitted. At the end of the file, the error count
- suddenly starts to increase until the transfer fails. This syndrome
- may manifest itself under other conditions, but infrequently.
-
- Correction: in the "rzfile" function, an ZEOF with an incorrect address
- should be ignored.
-
- if (rclhdr(Rxhdr) != rxbytes) {
- /*
- * Ignore eof if it's at wrong place - force
- * a timeout because the eof might have gone
- * out before we sent our zrpos.
- */
-
- errors = 0; goto nxthdr;
- }
-
- --- Uploaded Mon Jul 20 18:46:53 1987
-